თავი 4. ფუნქციების გამოყენება

დაჯგუფების ოპერაციები
 ჯგუფების შექმნა ხორციელდება წინადადებით GROUP BY

  • წინადადებაში GROUP BY შეიძლება გამოყენებულ იქნეს რამდენიმე სვეტი. ეს საშუალებას იძლევა ორგანიზებულ იქნეს იერარქიული ჯგუფები; 
  • იერარქიული ჯგუფების გამოყენებისას მონაცემების გამოანგარიშება (შეკრება, საშუალო არითმეტიკული და სხვა) ხორციელდება იერარქიის ბოლო ადგილზე მყოფი ჯგუფის მიმართ; 
  • წინადადებაში GROUP BY ნაჩვენები ნებისმიერი სვეტი უნდა იყოს ამორჩევის სვეტი ან გამოსახულება (დაჯგუფების ფუნქციის გარდა). ანუ თუ წინადადებაში SELECT გამოიყენება გამოსახულება, მაშინ იგი უნდა გამოიყენებოდეს წინადადებაშიც GROUP BY; 
  • სტატისტიკური გაანგარიშებების ოპერატორების გარდა სვეტები მითითებულნი წინადადებაში SELECT აუცილებლად ნაჩვენები (დაწერილი) უნდა იყოს წინადადებაში GROUP BY; 
  • NULL-ის შემცველი სტრიქონები წარმოადგენენ ცალკე ჯგუფს; 
  • წინადადება GROUP BY აუცილებლად დაწერილ უნდა იქნეს წინადადების WHERE-ს  შემდეგ. 

 ფუნქცია AVG

     ფუნქციით გამოიანგარიშება ერთი რიცხვითი ტიპის დომენის (სვეტის) მნიშვნელობათა საშუალო არითმეტიკული. სვეტის სახელი ფუნქციის პარამეტრის როლში გამოდის. რამდენიმე სვეტის მნიშვნელობათა საშუალო არითმეტიკულის მისაღებად საჭიროა ყველა სვეტისთვის მითითებულ იქნეს ფუნქციის სახელი და ფუნქციის პარამეტრად ჩაიწეროს სვეტის სახელი. შეკითხვაში შეიძლება გამოყენებული იქნეს რიცხვის დამრგვალების ფუნქციები. მაგალითში გამოყენებულია რიცხვის დამრგვალების ფუნქცია Round
 
ცხრილიდან tbsaq_mireba გამოვიანგარიშოთ საწყობების მიხედვით საწყობებში არსებული ყველა საქონლის შეძენისა და რეალიზაციის საშუალო ფასი

SELECT tbsaq_mireba.saw_nomeri AS[sawyobis nomeri], Round(Avg(tbsaq_mireba.sez_fasi),2) AS [SeZenis saSualo fasi],Round( Avg([tbsaq_mireba]![Sez_fasi]*0.2+[sez_fasi]),2) AS [realizaciis saSualo fasi]
FROM tbsaq_mireba
GROUP BY tbsaq_mireba.saw_nomeri
ORDER BY tbsaq_mireba.saw_nomeri 
შედეგი:

საწყობის №             შეძენის საშუალო ფასი        რეალიზაციის საშუალო ფასი
1                                      0,69                             0,83
2                                        37                             44,4

გამოვიანგარიშოთ პირველ საწყობში არსებული ყველა საქონლის შეძენისა და რეალიზაციის საშუალო ფასი

SELECT tbsaq_mireba.saw_nomeri AS [sawyobis nomeri], Round(Avg(tbsaq_mireba.sez_fasi),2) AS [SeZenis saSualo fasi], Round(Avg([tbsaq_mireba]![Sez_fasi]*0.2+[sez_fasi]),2) AS [realizaciis saSualo fasi]
FROM tbsaq_mireba
GROUP BY tbsaq_mireba.saw_nomeri
Having (((tbsaq_mireba.saw_nomeri)=1))
ORDER BY tbsaq_mireba.saw_nomeri